import 'package:flutter/widgets.dart';
import 'shake_constant.dart';

class ShakeHardConstant1 implements ShakeConstant {
  @override
  List<int> get interval => [2];

  @override
  List<double> get opacity => const [];

  @override
  List<double> get rotate => const [
        0,
        2.5,
        1.5,
        -0.5,
        1.5,
        1.5,
        -1.5,
        -0.5,
        -0.5,
        -1.5,
        2.5,
        -0.5,
        3.5,
        -0.5,
        -1.5,
        1.5,
        -0.5,
        1.5,
        -0.5,
        2.5,
        1.5,
        0.5,
        1.5,
        3.5,
        -1.5,
        -1.5,
        -0.5,
        0.5,
        1.5,
        -0.5,
        2.5,
        2.5,
        0.5,
        0.5,
        -1.5,
        -0.5,
        2.5,
        1.5,
        -1.5,
        3.5,
        0.5,
        3.5,
        2.5,
        2.5,
        -0.5,
        0.5,
        3.5,
        3.5,
        -1.5,
        1.5,
        0
      ];

  @override
  List<Offset> get translate => const [
        Offset(0, 0),
        Offset(-2, -2),
        Offset(5, 8),
        Offset(-5, -1),
        Offset(3, 9),
        Offset(6, -2),
        Offset(2, 4),
        Offset(9, -2),
        Offset(4, 7),
        Offset(0, 9),
        Offset(6, -5),
        Offset(6, 2),
        Offset(7, -6),
        Offset(10, 7),
        Offset(-8, 0),
        Offset(10, -1),
        Offset(-9, -6),
        Offset(9, -3),
        Offset(-3, 5),
        Offset(-1, 1),
        Offset(-1, 8),
        Offset(3, -8),
        Offset(-7, 6),
        Offset(-2, 7),
        Offset(-2, 2),
        Offset(9, 5),
        Offset(-3, 9),
        Offset(-7, 10),
        Offset(-5, -4),
        Offset(4, 7),
        Offset(8, 5),
        Offset(0, 2),
        Offset(5, 9),
        Offset(-9, 2),
        Offset(-3, 9),
        Offset(-9, 2),
        Offset(1, 2),
        Offset(-1, -3),
        Offset(0, -8),
        Offset(-3, 1),
        Offset(9, 3),
        Offset(-1, -1),
        Offset(-7, 8),
        Offset(-5, 4),
        Offset(2, -8),
        Offset(-4, -6),
        Offset(2, -2),
        Offset(-1, 6),
        Offset(-7, 4),
        Offset(4, -3),
        Offset(0, 0)
      ];
  @override
  Duration get duration => const Duration(milliseconds: 100);
}

class ShakeHardConstant2 implements ShakeConstant {
  @override
  List<int> get interval => [2];

  @override
  List<double> get opacity => const [];

  @override
  List<double> get rotate => const [
        0,
        3.5,
        -1.5,
        -1.5,
        1.5,
        -2.5,
        2.5,
        -1.5,
        0.5,
        3.5,
        2.5,
        3.5,
        1.5,
        2.5,
        0.5,
        3.5,
        0.5,
        2.5,
        -2.5,
        0.5,
        2.5,
        -0.5,
        -1.5,
        1.5,
        -2.5,
        3.5,
        1.5,
        3.5,
        -1.5,
        2.5,
        2.5,
        0.5,
        -0.5,
        2.5,
        2.5,
        -1.5,
        0.5,
        -2.5,
        -1.5,
        -0.5,
        3.5,
        -1.5,
        -2.5,
        0.5,
        -2.5,
        -0.5,
        -2.5,
        2.5,
        3.5,
        2.5,
        0
      ];

  @override
  List<Offset> get translate => const [
        Offset(0, 0),
        Offset(-7, 0),
        Offset(1, 1),
        Offset(-7, -6),
        Offset(-8, -8),
        Offset(-4, 6),
        Offset(-7, -3),
        Offset(10, 9),
        Offset(-9, 8),
        Offset(-4, 0),
        Offset(-4, 0),
        Offset(-7, 4),
        Offset(-7, 2),
        Offset(10, -9),
        Offset(9, -1),
        Offset(-6, -5),
        Offset(-2, 8),
        Offset(-3, 5),
        Offset(4, 1),
        Offset(7, 4),
        Offset(-5, -2),
        Offset(-9, -7),
        Offset(-2, 10),
        Offset(-4, 4),
        Offset(0, 9),
        Offset(-5, -7),
        Offset(-7, -8),
        Offset(-7, 9),
        Offset(6, 9),
        Offset(9, 3),
        Offset(3, -7),
        Offset(2, 7),
        Offset(-8, 4),
        Offset(1, -8),
        Offset(4, -1),
        Offset(8, -7),
        Offset(8, 5),
        Offset(9, -9),
        Offset(3, -5),
        Offset(2, 10),
        Offset(7, 7),
        Offset(8, 1),
        Offset(-9, 7),
        Offset(-1, 0),
        Offset(0, 4),
        Offset(-6, -3),
        Offset(7, 1),
        Offset(6, 4),
        Offset(-8, 9),
        Offset(-9, -8),
        Offset(0, 0)
      ];

  @override
  Duration get duration => const Duration(milliseconds: 100);
}
